/*
 * Universidad del Valle de Guatemala
 * Autor: Joseph Christopher Luttmann von Ahn
 * Carnet: 10048
 * Algoritmos y Estructura de Datos
 */
package radio.de.carro;
import java.util.Scanner;
import java.util.InputMismatchException;
/**
 *
 * @author Christopher Luttmann von Ahn
 * 
 */
public class RadioDeCarro {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //Declaracion de Objetos
	Scanner entrada = new Scanner(System.in);
	Goodbee mi_radio;
	//Declaracion de variables
	int temp = 0;
	int op1, op2, op3;
	int memo = 0;
	String frec = "AM";
	double est = 530;
	double[] lista = new double[2];
	//INICIA PROGRAMA
	mi_radio = new Goodbee();
	do{
		menu();
		op1 =(int)obtenerNumero("Seleccione una de las opciones del menu: ", true);
		switch(op1){
			case 1:
				mi_radio.power();
				System.out.println(mi_radio);
				break;
			case 2:
				mi_radio.cambio();
				System.out.println(mi_radio);
				break;
			case 3:
				mi_radio.fw();
				System.out.println(mi_radio);
				break;
			case 4:
				mi_radio.bw();
				System.out.println(mi_radio);
				break;
			case 5:
				op2 = (int)obtenerNumero("presione el boton de (1-12) para almacenar estacion: ", true);
				op2 --;
				mi_radio.store(op2);
				System.out.println(mi_radio);
				break;
			case 6:
				op3 = (int)obtenerNumero("presione el boton de (1-12) para escuchar estacion almacenada: ", true);
				op3 --;
				mi_radio.select(op3);
				System.out.println(mi_radio);
				break;
			case 7:
				System.out.println("GoodBYEEEEE!!!!");
				break;
			default:
				System.out.println("opcion invalida");	
			}
		}while(op1 != 7 );
		
		
    }
        /**
        * Imprime el menu de opciones 
        * @param 
        */
    public static void menu(){
		System.out.println("*----------------------------* ");
		System.out.println("*             Menu           * ");
		System.out.println("*----------------------------* ");
		System.out.println("1. Encender Radio              ");
		System.out.println("2. Cambiar AM/FM               ");
		System.out.println("3. Avanzar                     ");
		System.out.println("4. Retroceder                  ");
		System.out.println("5. Guardar emisora en memoria  ");
		System.out.println("6. Seleccionar memoria         ");
		System.out.println("7. Apagar                      ");
		System.out.println("                               ");
	}
		/**
        * solicita al usuario que ingrese un dato valido
        * en caso contrario manda una excepcion y le indica al usuario
        * que el dato ingresado es incorrecto. 
        * @param 
        */
    public static double obtenerNumero(String mensaje, boolean mostrar){
        Scanner ingreso = new Scanner(System.in);
        double num = -1;
        
        System.out.print(mensaje);
        try{
            num = ingreso.nextDouble();
        }
        catch(InputMismatchException exception){
            if (mostrar)
                System.out.println("\nERROR: ~~> Dato invalido. :O(\n");
        }
        finally{
            ingreso.nextLine();//Atrapar el ENTER
        }
        return num;
    }
}